home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cocktail / reuse.lha / reuse / src / Source.mi < prev    next >
Text File  |  1992-08-18  |  1KB  |  44 lines

  1. (* $Id: Source.mi,v 1.0 1992/08/07 14:42:03 grosch rel $ *)
  2.  
  3. (* $Log: Source.mi,v $
  4. # Revision 1.0  1992/08/07  14:42:03  grosch
  5. # Initial revision
  6. #
  7.  *)
  8.  
  9. (* Ich, Doktor Josef Grosch, Informatiker, Juli 1992 *)
  10.  
  11. IMPLEMENTATION MODULE Source;
  12.  
  13. FROM SYSTEM    IMPORT ADDRESS;
  14. FROM System    IMPORT tFile, OpenInput, Read, Close;
  15.  
  16. PROCEDURE BeginSource (FileName: ARRAY OF CHAR): tFile;
  17.    BEGIN
  18.       RETURN OpenInput (FileName);
  19.    END BeginSource;
  20.  
  21. PROCEDURE GetLine (File: tFile; Buffer: ADDRESS; Size: CARDINAL): INTEGER;
  22.    CONST IgnoreChar = ' ';
  23.    VAR n    : INTEGER;
  24.    VAR BufferPtr: POINTER TO ARRAY [0..30000] OF CHAR;
  25.    BEGIN
  26.    (* # ifdef Dialog
  27.       n := Read (File, Buffer, Size);
  28.       (* Add dummy after newline character in order to supply a lookahead for rex. *)
  29.       (* This way newline tokens are recognized without typing an extra line.      *)
  30.       BufferPtr := Buffer;
  31.       IF (n > 0) AND (BufferPtr^[n - 1] = 012C) THEN BufferPtr^[n] := IgnoreChar; INC (n); END;
  32.       RETURN n;
  33.       # else *)
  34.       RETURN Read (File, Buffer, Size);
  35.    (* # endif *)
  36.    END GetLine;
  37.  
  38. PROCEDURE CloseSource (File: tFile);
  39.    BEGIN
  40.       Close (File);
  41.    END CloseSource;
  42.  
  43. END Source.
  44.